package fwmpc.service;

import net.sf.json.JSONObject;

/**
 * 接口描述:  微信周边应用处理Service接口
 *
 * @author 王雷
 * @version 1.0.0
 * @date 2021/1/21 0021 上午 10:46
 */
public interface IWeiXinPeripheralApplicationsManagerService {
    /**
     * 功能描述：生成二维码
     *
     * @param appId        平台标识
     * @param parameterMap 参数
     * @throws Exception 处理异常
     * @author : 王雷
     * @date : 2022/7/19 0019 上午 11:12
     */
    <PM> JSONObject giveGenerateQrCode(String appId, PM parameterMap) throws Exception;

    /**
     * 功能描述：关注信息
     *
     * @param appId  标识
     * @param openId 顾客OpenId
     * @throws Exception 处理异常
     * @author : 王雷
     * @date : 2021/1/21 0021 上午 11:37
     */
    JSONObject giveFollowInformation(String appId, String openId) throws Exception;

    /**
     * 功能描述：微信访问地址——获取素材总数
     *
     * @param appId 标识
     * @author : 王雷
     * @date : 2021/1/22 0022 下午 8:24
     */
    JSONObject giveMaterialCount(String appId) throws Exception;

    /**
     * 功能描述：微信访问地址——获取素材列表
     *
     * @param appId        标识
     * @param parameterMap 参数
     * @author : 王雷
     * @date : 2021/1/22 0022 下午 8:24
     */
    <PM> JSONObject giveMaterialData(String appId, PM parameterMap) throws Exception;

    /**
     * 功能描述：微信访问地址——获取微信菜单
     *
     * @param appId 标识
     * @author : 王雷
     * @date : 2021/1/22 0022 下午 8:24
     */
    JSONObject giveWxMenu(String appId) throws Exception;

    /**
     * 功能描述：微信访问地址——更新微信菜单
     *
     * @param appId        标识
     * @param parameterMap 参数
     * @author : 王雷
     * @date : 2021/1/22 0022 下午 8:24
     */
    <PM> JSONObject updateWxMenu(String appId, PM parameterMap) throws Exception;

    /**
     * 功能描述：微信访问地址——批量为用户打标签
     *
     * @param appId        标识
     * @param parameterMap 参数
     * @author : 王雷
     * @date : 2021/1/22 0022 下午 8:24
     */
    <PM> JSONObject batchUserByTag(String appId, PM parameterMap) throws Exception;

    /**
     * 功能描述：微信访问地址——获取微信用户信息
     *
     * @param appId  标识
     * @param openId 用户OpenId
     * @author : 王雷
     * @date : 2021/1/22 0022 下午 8:24
     */
    JSONObject giveUserMessage(String appId, String openId) throws Exception;
}
